<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let obj = {
            id: 1,
            isChecked: false
        }
        // 代理数据
        // proxy是ES6新增
        // obj当作是代理对象
        const o = new Proxy(obj, {
            // 拦截属性值的读取
            get(target, propName) {
                // target 传入的数据
                // propName 读取的属性名
                console.log(target,propName);
                // return 的默认值是undefined
                return target[propName]
            },
            // 拦截属性值的修改
            set(target,propName,value){
                // ta 传入的数据
                // pr 读取的属性名
                // va 修改的新值
                console.log('ss'+value);
                target[propName]=value
            },
            
            // 拦截属性删除的操作
            deleteProperty(target,propName){
                // 返回布尔值,删除成功返回true，失败FALSE
                console.log(propName);
                return delete target[propName]
            }
        })
        console.log(o);
    </script>

</body>

</html>